package demo;

import java.util.Scanner;

/*
     流程控制语句：
         引入： 键盘录入一个学生的成绩,根据分数打印合格/不合格 , 在Java代码中需要分情况讨论的场景就需要使用流程控制语句解决
         分类：
            -- if语句
            -- switch语句


       if 语句：
           if单选结构：
                格式：
                    if(条件判断){
                        当 条件判断 成立, 执行的代码
                    }
                    if之后的代码

                执行流程：
                       先进行条件判断
                             成立-执行if的{}中的代码
                             不成立-执行if的{}后面的代码

               【随堂练习】
                    1、根据年龄判断是否已经成年，年龄大于18表示成年。
                    2、判断一个数是否在5(包含)到10(包含)之间。
           if双选结构：
                格式：
                    if(条件判断){
                        当 条件判断 成立时 , 要执行的代码
                    }
                    else{
                        当 条件判断 不成立时 , 要执行的代码
                    }
                 执行流程：
                      先进行条件判断：
                           条件判断成立 - 执行 if的{}中的代码
                           条件判断不成立 - 执行 else的{}中的代码
            随堂练习】
            1、模拟用户登录操作（用户名和密码都用字符串），需要判断出登录成功和登录失败的情况。
               注意：判断字符串是否相同，不能使用==，而是需要使用equals方法。

           if多选结构：
 */
public class IfDemo1 {
    public static void main(String[] args) {
        /*
              分析：
                 1. 键盘录入用户名userName  和 密码 password
                 2. 假设能够登录成功的账号和密码分别为： "jack" 和 "123456"
                      使用if的双选结构判断：
                             判断条件： userName == "jack" && password == "123456"
                                成立： 执行打印登陆成功
                                不成立： 执行打印登陆失败
              补充说明：
                   == ：
                       基本数据类型的数据使用== : 只比较数据值是否相同,不比较类型
                       引用数据类型的数据使用== : 比较的是内存地址值是否相同

              总结：  比较两个字符串的内容是否相同使用equals()
                      一般使用字符串常量调用equals() , 可以防止出现NullPointerException
         */
        // 1. 键盘录入用户名userName  和 密码 password
        Scanner input = new Scanner(System.in);
        System.out.println("请输入用户名：");
        String userName = input.nextLine();

        System.out.println("请输入密码：");
        String password = null;

        // 2. 使用if的双选结构判断：userName == "jack" && password == "123456"
        // equals() : 比较两个字符串的内容是否相同
        if("jack".equals(userName) && "123456".equals(password)){ // 处理登录成功的情况
            System.out.println("登录成功！");
        }
        else{// 处理登录失败的情况
            System.out.println("登录失败！");
        }
    }

    public static void main3(String[] args) {
        byte num1 = 100;
        int num2 = 100;
        long num3 = 100;
        double num4 = 100.0;
        System.out.println(num1 == num2); // true
        System.out.println(num1 == num3); // true
        System.out.println(num1 == num4); // true

        String name1 = "zhangsan";
        String name2 = new String("zhangsan");
        System.out.println(name1 == name2);// false

    }
    public static void main2(String[] args) {
        // 键盘录入一个整数,打印是奇数还是偶数
        // 1. 键盘录入一个整数num
        System.out.println("请输入一个整数：");
        int num = new Scanner(System.in).nextInt();

        // 2. 使用if双选结构
        if(num % 2 == 0){ // 处理num是偶数的情况
            System.out.println(num + "是偶数");
        }
        else{// 处理num是奇数的情况
            System.out.println(num + "是奇数");
        }

    }
    public static void main1(String[] args) {
        /*
              键盘录入一个学生的年龄,打印成年或者不打印成年
         */
        // 1. 键盘录入一个学生的年龄
        System.out.println("请输入学生的年龄：");
        int age = new Scanner(System.in).nextInt();

        // 2. 使用if的单选结构判断是否成年
        if(age >= 18){
            System.out.println("成年");
        }
        System.out.println("over");
    }
}
